package com.prezs.Javaio;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;

public class CharBufferedStreamTest {
	
	public static void main(String[] args) throws IOException {
		// 用于排序的map key是序号，value是诗句
		Map<String, String> sortMap =  new HashMap<>();
		// 创建读取字符流对象
		BufferedReader br = new BufferedReader(new FileReader("poem.log"));
		// 创建写入字符流对象
		BufferedWriter bw = new BufferedWriter(new FileWriter("poem_test.txt"));
		// 存取读取的内容
		String line = null;
		// 循环读取数据
		while((line = br.readLine()) != null) {
			// 如果是空行,则结束本次循环
			if (line.isEmpty()) {
				continue;
			}
			// 切分文本，将序号与诗句分开
			String[] split = line.split(Pattern.quote("."));
			// 存储到map中
			sortMap.put(split[0], split[1]);
		}
		
		br.close();
		
		// 按顺序输出数据
		for(int i = 1;i <= sortMap.size();i++) {
			// 将int类型转换为string类型
			String key = String.valueOf(i);
			// 获取key对应的value
			String value = sortMap.get(key);
			// 向文件中写入第i条数据
			bw.write(key+"."+value);
			// 换行
			bw.newLine();
		}
		
		bw.close();
	}
}
